import Vue from 'vue'
import Vuex from 'vuex'
import products from './modules/products.js'
import cart from './modules/cart.js'

Vue.use(Vuex)

const myPlugin = store => {
  store.subscribe((mutations, state) => {
    // 操作数据
    //每当我们调用mutations中的任意方法的时候触发的
    //因为我们分模块化，所以我们都要去先判断是哪个模块的mutations
    // mutations.type 返回模块的名称
    if (mutations.type.startsWith('cart/')) {
      //将每一次的mutations的操作都会触发这个setItem
      sessionStorage.setItem('cartProducts', JSON.stringify(state.cart.cartProducts))
    }
  })
}

export default new Vuex.Store({
  state: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
    products,
    cart,
  },
  plugins: [myPlugin],
})
